// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

/* *****************封装轻提示********************** */
function tip(msg = "默认参数") {
  const myToast = document.querySelector('#myToast')
  myToast.innerHTML = msg
  const toast = new bootstrap.Toast(myToast, {
    animation: true,
    autohide: true,
    delay: 1000
  })
  toast.show()
}
/* 给首页和学生页面增加名字,因为两个页面都用到了用户名,所以放在公共的地方最好了 */
const username = document.querySelector('.navbar-nav .font-weight-bold')
//这里必须要做判断: 如果不做判断在登录页面和注册页面就会报错
if (username) {
  username.innerHTML = localStorage.getItem('user-name')
}

/***********************退出登录***********************/
const logout = document.querySelector('#logout')
if (logout) {
  logout.addEventListener('click', function () {
    localStorage.removeItem('user-token')
    localStorage.removeItem('user-name')
    location.href = 'login.html'
  })
}
/***********************设置请求根路径***********************/

axios.defaults.baseURL = 'http://ajax-api.itheima.net'

/***********************拦截器***********************/

axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 1. 进行全局token的配置

  // console.log('拦截到了一个请求，请求发送出去之前会先执行此函数')
  // config 对象----> 发送请求时的配置信息--->在请求发送出去之前修改配置
  // console.log('请求拦截器中的config', config)

  // 接口发送之前先走这里我们对这个接口信息可以进行编写
  // config.url = '/goushengzi'

  //我们将请求拦截器中设置token,以后,我每一次请求的时候就让他帮我携带token
  const token = localStorage.getItem('user-token')
  if (token) {
    config.headers.authorization = token
  }

  return config; // 不能动它
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  //alert('拦截到了一个响应成功的接口') //请求接口上面会有显示,控制台不会输出,拦截住了控住台地方的数据
  //console.log(response, '查看响应拦截器')
  //这里做去壳的效果
  //return response; //因为返回的是一个套壳对象,所以在控制台里面拿到的就是一个套壳对象
  //return 111          //如果这里return 的是啥 ,那么我们在控制台打印的就是 111
  return response.data
}, function (error) {
  // 对响应错误做点什么
  //统一处理错误响应,token过期或者服务器错误
  // alert('拦截了一个错误的响应')
  // console.dir(error)
  const { status, data } = error.response
  if (status === 404) {
    alert(data.message)
  } else if (status === 401) {
    alert(data.message)
    //token验证失败 , 我们所做的事情
    localStorage.removeItem('user-name')
    localStorage.removeItem('user-token')
    location.href = "login.html"
  }
  return Promise.reject(error)
});